<?php

namespace app\fe\amis;

class Crud
{
    /**@var    string        type 指定为 CRUD 渲染器 */
    public $type = 'CRUD';
    /**@var    string    "table"    "table" 、 "cards" 或者 "list" */
    public $mode = 'table';
    /**@var    string    ""    可设置成空，当设置成空时，没有标题栏 */
    public $title;
    /**@var    string        表格外层 Dom 的类名 */
    public $className;
    /**@var    API        CRUD 用来获取列表数据的 api。 */
    public $api;
    /**
     * @var array 字段列定义
     */
    public $columns = [];
    /**@var    boolean        是否一次性加载所有数据（前端分页） */
    public $loadDataOnce = false;
    /**@var    boolean    true    在开启 loadDataOnce 时，filter 时是否去重新请求 api */
    public $loadDataOnceFetchOnFilter;
    /**@var    string        数据映射接口返回某字段的值，不设置会默认把接口返回的items或者rows填充进mode区域 */
    public $source;
    /**@var    Form        设置过滤器，当该表单提交后，会把数据带给当前 mode 刷新列表。 */
    public $filter;
    /**@var    boolean    false    是否可显隐过滤器 */
    public $filterTogglable;
    /**@var    boolean    true    设置过滤器默认是否可见。 */
    public $filterDefaultVisible;
    /**@var    boolean    true    是否初始化的时候拉取数据, 只针对有 filter 的情况, 没有 filter 初始都会拉取数据 */
    public $initFetch = true;
    /**@var    number    3000    刷新时间(最低 1000) */
    public $interval;
    /**@var    boolean    false    配置刷新时是否隐藏加载动画 */
    public $silentPolling;
    /**@var    string    ""    通过表达式来配置停止刷新的条件 */
    public $stopAutoRefreshWhen;
    /**@var    boolean    false    当有弹框时关闭自动刷新，关闭弹框又恢复 */
    public $stopAutoRefreshWhenModalIsOpen;
    /**@var    boolean    true    是否将过滤条件的参数同步到地址栏 */
    public $syncLocation;
    /**@var    boolean    false    是否可通过拖拽排序 */
    public $draggable;
    /**@var    boolean        用表达式来配置是否可拖拽排序 */
    public $itemDraggableOn;
    /**@var    API        保存排序的 api。 */
    public $saveOrderApi;
    /**@var    API        快速编辑后用来批量保存的 API。 */
    public $quickSaveApi;
    /**@var    API        快速编辑配置成及时保存时使用的 API。 */
    public $quickSaveItemApi;
    /**@var    Array<Action>        批量操作列表，配置后，表格可进行选中操作。 */
    public $bulkActions;
    /**@var    boolean    false    当可批量操作时，默认是否全部勾选。 */
    public $defaultChecked;
//    /**@var	Object		覆盖消息提示，如果不指定，将采用 api 返回的 message */
//    public $messages;
//    /**.fetchFailed	string		获取失败时提示 */
//    public $messages;
//    /**.saveOrderFailed	string		保存顺序失败提示 */
//    public $messages;
//    /**.saveOrderSuccess	string		保存顺序成功提示 */
//    public $messages;
//    /**.quickSaveFailed	string		快速保存失败提示 */
//    public $messages;
//    /**.quickSaveSuccess	string		快速保存成功提示 */
    public $messages;
    /**@var    string    "id"    设置 ID 字段名。 */
    public $primaryField;
    /**@var    number    10    设置一页显示多少条数据。 */
    public $perPage;
    /**@var    Object        设置默认 filter 默认参数，会在查询的时候一起发给后端 */
    public $defaultParams = [];
    /**@var    string    "page"    设置分页页码字段名。 */
    public $pageField;
    /**@var    string    "perPage"    设置分页一页显示的多少条数据的字段名。注意：最好与 defaultParams 一起使用，请看下面例子。 */
    public $perPageField;
    /**@var    Array<number>    [5, 10, 20, 50, 100]    设置一页显示多少条数据下拉框可选条数。 */
    public $perPageAvailable;
    /**@var    string        设置用来确定位置的字段名，设置后新的顺序将被赋值到该字段中。 */
    public $orderField;
    /**@var    boolean    false    隐藏顶部快速保存提示 */
    public $hideQuickSaveBtn;
    /**@var    boolean    false    当切分页的时候，是否自动跳顶部。 */
    public $autoJumpToTopOnPagerChange;
    /**@var    boolean    true    将返回数据同步到过滤器上。 */
    public $syncResponse2Query;
    /**@var    boolean    true    保留条目选择，默认分页、搜素后，用户选择条目会被清空，开启此选项后会保留用户选择，可以实现跨页面批量操作。 */
//    public $keepItemSelectionOnPageChange;
    /**@var    string        单条描述模板，keepItemSelectionOnPageChange设置为true后会把所有已选择条目列出来，此选项可以用来定制条目展示文案。 */
    public $labelTpl;
    /**@var    Array    ['bulkActions', 'pagination']    顶部工具栏配置 */
    public $headerToolbar;
    /**@var    Array    ['statistics', 'pagination']    底部工具栏配置 */
    public $footerToolbar;
    /**@var    boolean    false    是否总是显示分页 */
    public $alwaysShowPagination;
    /**@var    boolean    true    是否固定表头(table 下) */
    public $affixHeader;
}